The controlled and demonstrable execution of tasks is an increasing requirement in the business world, partly triggered through new legal guidelines (e.g., the Sarbanes-Oxley Act, Basel II, and the Health Insurance Portability and Accountability Act (HIPAA)). While many current Enterprise Resource Planning (ERP) systems (e.g., SAP, IBM MQ Workflow and BEA Systems) make it possible to monitor activities with respect to a workflow, a number of restrictions exist with respect to collaborative and distributed workflow systems that span organizational and technical boundaries.
For example, consider that control over the execution of tasks in a workflow may be enforced through the definition of workflow models, instances of which are specified to be executed in a designed fashion. However, it is not always possible to define each and every execution path in a workflow model, and a workflow model may as such be augmented by a set of declarative rules.
An example workflow may be a loan approval process, which is an example of a very repetitive process in the banking domain. However, as a large number of instances of this process may be executed at the same time (e.g., several thousand customers may apply for a loan each week), it may be desirable to capture specific conditions in rules. For example, a rule may specify that if a loan is greater than a predetermined amount, a supervisor is required to counter check.
Such rules may be viewed as “separation of duty” rules, in that they may operate to prevent error and fraud through a general, or context-dependent, limitation of a particular entity's tasks and authorities.
It will be appreciated that certain collaborative and distributed workflow systems may span organizational and technical boundaries. The definition of rules (e.g., “separation of duty” rules, or other controls) presents technical challenges in such collaborative and distributed workflow systems. Merely for example, certain aspects of a collaborative workflow may include private tasks, and one party to a collaborative workflow may be reluctant to make details regarding private workflows publicly available. Also for example, consider that the tasks defined by collaborating parties may be defined in non-compatible manners.